package mlz.c_recursion;

/*
递归算法的执行过程
案例需求：计算n的阶乘   比如: 5的阶乘 = 1 * 2 * 3 * 4 * 5      6 的阶乘 =  1 * 2 * 3 * 4 * 5 * 6
f(n)表示 n表示阶乘
f(5) = 1*2*3*4*5
f(5) = f(4)*5
f(4) = f(3)*4
f(3) = f(2)*3
f(2) = f(1)*2
f(1) = 1

规律总结:
除了f(1) = 1 -> 出口 也就是结束递归的条件
其他的f(n) = f(n-1)*n
 */
public class Demo02 {
    public static void main(String[] args) {
        int f = f(5);
        System.out.println(f);
    }

    //计算n的阶乘
    public static int f(int n){
        //结束递归的条件 - 出口
        if (n == 1){
            return 1;
        }else {
            return f(n- 1 ) * n;
        }

    }
}





















